<?php
class UsersAction extends BaseAction
{


    /* 添加用户 - 显示页面
     *
     */
    public function add_user()
    {
		// 数据库链接
		$db_conf = $this->get_db_config();

		// 获取邀请码
		$invite_code = strval( trim($_GET['invite_code']) );
		if($invite_code)
		{
			echo '<title>注册 - Remote MySQL</title>';
		}
		else
		{
			echo '<title>添加用户 - Remote MySQL</title>';
		}
		echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

		if($invite_code)
		{
			// 获取邀请记录
			$where_invite_record['invite_code'] = array('eq', $invite_code);
			$invite_record = M('invite_record', '', $db_conf)->where($where_invite_record)->find();
			if($invite_record === FALSE)
			{
				$this->show_msg('error', '获取邀请记录失败', 0);
				die();
			}
			if(!$invite_record)
			{
				$this->show_msg('error', '邀请记录不存在', 0);
				die();
			}
			// 检查邀请码是否可用
			switch($invite_record['status'])
			{
				case 0:
					$invite_record_err_msg = '邀请码已作废';
					break;
				case 2:
					$invite_record_err_msg = '邀请码已被使用';
					break;
			}
			if($invite_record_err_msg)
			{
				$this->show_msg('error', $invite_record_err_msg, 0);
				die();
			}
			$this->assign('invite_code', $invite_code);
			$this->assign('check_nickname', '0');
			$_SESSION = array();
	        $_SESSION['invited'] = 1;
		}
		else
		{
			// 检查登录
	        $check_login = $this->check_login();
	        if(!$check_login)
	        {
				U('Users/login', '', '', 1);
	        }
	        $this->head();
	        // 检查用户权限
	        $user_power = $this->get_user_power();
	        if($user_power != 1)
	        {
				$this->show_msg('error', '该功能仅管理员可用', 0);
				die();
	        }
			$this->assign('check_nickname', '1');
		}
        $this->display();
    }


    /* 添加用户 - 执行
     *
     */
    public function do_add_user()
    {
        echo '<title>添加用户 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 检查用户权限
        $user_power = $this->get_user_power();
        if($user_power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }

        // 数据库配置
        $db_conf = $this->get_db_config();

        // 获取用户名
        $username = strval( trim($_POST['username']) );
        if(!$username)
        {
            $this->show_msg('error', '用户名为空', 0);
            die();
        }
        // 检查用户名长度
        if(strlen($username) < 2)
        {
            $this->show_msg('error', '用户名最少2位', 0);
            die();
        }
        if(strlen($username) > 12)
        {
            $this->show_msg('error', '用户名最多12位', 0);
            die();
        }
        // 获取密码
        $pwd = strval( trim($_POST['pwd']) );
        if(!$pwd)
        {
            $this->show_msg('error', '密码为空', 0);
            die();
        }
        // 检查密码长度
        if(strlen($pwd) < 6)
        {
            $this->show_msg('error', '密码最少6位', 0);
            die();
        }
        if(strlen($pwd) > 16)
        {
            $this->show_msg('error', '密码最多16位', 0);
            die();
        }
        // 获取确认密码
        $repwd = strval( trim($_POST['repwd']) );
        if(!$repwd)
        {
            $this->show_msg('error', '确认密码为空', 0);
            die();
        }
        // 检查两次密码是否相同
        if($pwd != $repwd)
        {
            $this->show_msg('error', '两次输入的密码不一致', 0);
            die();
        }
        // 获取邀请码
		$invite_code = strval( trim($_POST['invite_code']) );
		if($invite_code)
		{
			// 获取邀请码缓存
			$where_invite_code_cache['invite_code'] = array('eq', $invite_code);
			$invite_code_cache = M('invite_record', '', $db_conf)->where($where_invite_code_cache)->find();
			if($invite_code_cache === FALSE)
			{
				$this->show_msg('error', '数据库错误：无法获取邀请码缓存', 0);
				die();
			}
			if(!$invite_code_cache)
			{
				$this->show_msg('error', '邀请码错误', 0);
				die();
			}
			// 获取昵称
			$nickname = $invite_code_cache['nickname'];
		}
		else
		{
			// 获取昵称
			$nickname = strval( trim($_POST['nickname']) );
		}
		if(!$nickname)
        {
            $this->show_msg('error', '昵称为空', 0);
            die();
        }
        // 用户名查重
		$url = HOST_NAME . MODULE_NAME . '/username_duplicate_check';
		$post_data = array('username' => $username);
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
		$username_duplicate_check = curl_exec($ch);
		curl_close($ch);
		if(!$username_duplicate_check)
        {
            $this->show_msg('error', '用户名重复', 0);
            die();
        }
		// 昵称查重
		$url = HOST_NAME . MODULE_NAME . '/nickname_duplicate_check';
		$post_data = array('nickname' => $nickname);
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
		$nickname_duplicate_check = curl_exec($ch);
		curl_close($ch);
		if(!$nickname_duplicate_check)
        {
            $this->show_msg('error', '昵称重复', 0);
            die();
        }
        // 计算密码的secret_key
        $secret_key = $this->get_password_secret_key($username);
        // 获取密文密码
        $true_pwd = $this->get_md5_password($pwd, $secret_key);
        // 检查用户表是否有数据
        $exist_user = M('users', '', $db_conf)->count();
        if($exist_user === FALSE)
        {
            $this->show_msg('error', '数据库错误：无法读取用户表', 0);
            die();
        }
        if($exist_user)
        {
            $power = 0;
        }
        else
        {
            $power = 1;
        }
        // 存储数据
        $data_insert_user['user_name'] = $username;
        $data_insert_user['password'] = $true_pwd;
        $data_insert_user['power'] = $power;
		$data_insert_user['nickname'] = $nickname;
		$data_insert_user['register_time'] = time();
		$data_insert_user['useable'] = '1';
        $insert_user = M('users', '', $db_conf)->add($data_insert_user);
        if(!$insert_user)
        {
            $this->show_msg('error', '数据库错误：添加用户失败', 0);
            die();
        }
        $this->show_msg('success', '添加用户成功', 0);
        $this->show_msg('success', '', 2);
		// 若为受邀注册，标记验证码为“已使用”
		if($invite_code)
		{
			$field_update_invite_code['status'] = '2';
			$where_update_invite_code['id'] = array('eq', $invite_code_cache['id']);
			$update_invite_code = M('invite_record', '', $db_conf)->where($where_update_invite_code)->save($field_update_invite_code);
			if(!$update_invite_code)
			{
				$this->show_msg('error', '数据库错误：使用邀请码失败', 0);
	            die();
			}
		}
        // 安装时添加用户，自动登录
        if($_SESSION['install'] == 1)
        {
            $_SESSION['rmt_user'] = array(
                'id' => $insert_user,
                'user_name' => $username,
                'power' => $power,
				'nickname' => $nickname
            );
            unset($_SESSION['install']);
        }
        U('Users/user_list', '', '', 1);
    }


    /* 用户名查重
     *
     */
    public function username_duplicate_check()
    {
		// 数据库配置
        $db_conf = $this->get_db_config();

		// 获取用户名
		$username = strval( trim($_POST['username']) );
        // 查重
        $where_check_user['user_name'] = array('eq', $username);
        $check_user = M('users', '', $db_conf)->where($where_check_user)->find();
		if($check_user)
        {
            echo 0;
        }
        else
        {
            echo 1;
        }
    }


	/* 昵称查重
     *
     */
    public function nickname_duplicate_check()
    {
		// 数据库配置
        $db_conf = $this->get_db_config();

		// 获取昵称
		$nickname = strval( trim($_POST['nickname']) );
        // 查重
        $where_check_nickname['nickname'] = array('eq', $nickname);
        $check_nickname = M('users', '', $db_conf)->where($where_check_nickname)->find();
        if($check_nickname)
        {
            echo 0;
        }
        else
        {
            echo 1;
        }
    }


    /* 登录
     *
     */
    public function login()
    {
        $this->display();
    }


    /* 执行登录
     *
     */
    public function do_login()
    {
        // 数据库链接
        $db_conf = $this->get_db_config();

        echo '<title>登录 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';
        // 获取用户名
        $username = strval( trim($_POST['username']) );
        if(!$username)
        {
            $this->show_msg('error', '登录失败：用户名为空', 0);
            die();
        }
        // 获取密码
        $pwd = strval( trim($_POST['pwd']) );
        if(!$pwd)
        {
            $this->show_msg('error', '登录失败：密码为空', 0);
            die();
        }
        // 获取密码秘钥
        $pwd_secret_key = $this->get_password_secret_key($username);
        // 获取密文密码
        $true_pwd = $this->get_md5_password($pwd, $pwd_secret_key);
        // 获取用户信息
        $where_user_info['user_name'] = array('eq', $username);
        $user_info = M('users', '', $db_conf)->where($where_user_info)->find();
        if($user_info === FALSE)
        {
            $this->show_msg('error', '数据库错误：无法获取用户信息', 0);
            die();
        }
        if(!$user_info)
        {
            $this->show_msg('error', '该用户未注册', 0);
            die();
        }
        // 验证密码
        if($true_pwd != $user_info['password'])
        {
            $this->show_msg('error', '登录失败：密码错误', 0);
            die();
        }
		// 验证是否可用
		if(!$user_info['useable'])
		{
			$this->show_msg('error', '登录失败：账号已被禁用', 0);
            die();
		}
        // 登录成功，存储SESSION并跳转
        $_SESSION['rmt_user'] = $user_info;
        unset($_SESSION['rmt_user']['password']);
        U('Index/remote_management', '', '', 1);
    }


    /* 退出登录
     *
     */
    public function logout()
    {
        session_unset();
        session_destroy();
        U('/Index', '', '', 1);
    }


    /* 用户列表
     *
     */
    public function user_list()
    {
		// 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }

        echo '<title>用户列表 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';
        $this->head();
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
        // 数据库链接
        $db_conf = $this->get_db_config();

		// 获取筛选条件
		$user_status = strval( trim($_GET['user_status']) );
		switch($user_status)
		{
			case 'usable':
				$where_user_list['useable'] = array('eq', 1);
				break;
			case 'unusable':
				$where_user_list['useable'] = array('eq', 0);
				break;
			default:
				$user_status = '';
				$where_user_list['useable'] = array('in', array(0, 1));
		}
		// 获取数据总条数
		$user_amount = M('users', '', $db_conf)->where($where_user_list)->count();
		// 设置分页尺寸
		$page_size = 15;
		// 设置按钮数量
		$button_amount = 5;
		// 设置附加参数
		if($user_status)
		{
			$other_parm = array(
				'user_status' => $user_status
			);
		}
		// 生成分页样式
		$PAGE = $this->page($user_amount, $page_size, $button_amount, $other_parm);
		// 获取用户列表
        $field = array(
            'id',
            'user_name',
			'nickname',
            'power',
			'register_time',
			'useable'
        );
        $user_list = M('users', '', $db_config)->where($where_user_list)->field($field)->limit($PAGE['limit'])->select();
        if($user_list === FALSE)
        {
            $this->show_msg('error', '获取用户列表失败', 0);
            die();
        }
        if(!$user_list)
        {
            $this->show_msg('error', '用户列表为空', 0);
            die();
        }
		// 循环处理数据
		foreach($user_list as $m=>$n)
		{
			$user_list[$m]['register_time_str'] = date('Y-m-d H:i:s', $n['register_time']);
		}
		// 生成分页数据
		$PAGE['data'] = $user_list;

        $this->assign('PAGE', $PAGE);
        $this->display();
    }


    /* 删除用户
     *
     */
    public function del_user()
    {
        echo '<title>删除用户 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
        // 获取用户ID
        $user_id = intval($_GET['user_id']);
        if(!$user_id)
        {
            $this->show_msg('error', '用户ID为空', 0);
            die();
        }
        // 获取用户信息
        $where_user_info['id'] = array('eq', $user_id);
        $user_info = M('users', '', $db_conf)->where($where_user_info)->find();
        if($user_info === FALSE)
        {
            $this->show_msg('error', '获取用户信息失败', 0);
            die();
        }
        if(!$user_info)
        {
            $this->show_msg('error', '用户不存在', 0);
            die();
        }
        // 检查用户权限
        if($user_info['power'] == 1)
        {
            $this->show_msg('error', '管理员不可删除', 0);
            die();
        }
        // 删除用户
        $where_del_user = $where_user_info;
        $del_user = M('users', '', $db_conf)->where($where_user_info)->delete();
        if(!$del_user)
        {
            $this->show_msg('error', '删除用户失败', 0);
            die();
        }
		// 获取用户状态
		$user_status = strval( trim($_GET['user_status']) );
		switch($user_status)
		{
			case 'all':
				$user_status = '';
				break;
			case 'usable':
			case 'unusable':
				$user_status = '?user_status=' . $user_status;
				break;
			default:
				$user_status = '';
		}

        U('Users/user_list' . $user_status, '', '', 1);
    }


	/* 邀请记录列表
	 *
	 */
	public function invite_record_list()
	{
		echo '<title>邀请记录 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
		$this->head();
		// 获取筛选条件
		$record_status = strval( trim($_GET['record_status']) );
		switch($record_status)
		{
			case 'usable':
				$where_invite_record_list['status'] = array('eq', 1);
				break;
			case 'used':
				$where_invite_record_list['status'] = array('eq', 2);
				break;
			case 'unusable':
				$where_invite_record_list['status'] = array('eq', 0);
				break;
			default:
				$where_invite_record_list['status'] = array('in', array(0, 1, 2));
		}
		// 获取数据总条数
		$record_amount = M('invite_record', '', $db_conf)->where($where_invite_record_list)->count();
		// 设置分页尺寸
		$page_size = 15;
		// 设置按钮数量
		$button_amount = 5;
		// 设置附加参数
		if($record_status)
		{
			$other_parm = array(
				'record_status' => $record_status
			);
		}
		// 生成分页样式
		$PAGE = $this->page($record_amount, $page_size, $button_amount, $other_parm);
		// 获取邀请记录列表
		$invite_record_list = M('invite_record', '', $db_conf)->where($where_invite_record_list)->order('id DESC')->limit($PAGE['limit'])->select();
		if($invite_record_list === FALSE)
		{
			$this->show_msg('error', '获取邀请记录列表失败', 0);
            die();
		}
		// 循环处理数据
		foreach($invite_record_list as $m=>$n)
		{
			// 处理邀请了链接
			$invite_record_list[$m]['invite_link'] = HOST_NAME . 'Users/add_user?invite_code=' . $n['invite_code'];
			// 处理邀请时间
			$invite_record_list[$m]['invite_time'] = date('Y-m-d H:i:s', $n['add_time']);
			// 处理使用状态
			switch($n['status'])
			{
				case '0':
					$invite_record_list[$m]['status_str'] = '已作废';
					$invite_record_list[$m]['status_color'] = '#A90A0A';
					break;
				case '1':
					$invite_record_list[$m]['status_str'] = '未使用';
					$invite_record_list[$m]['status_color'] = '#23BB10';
					break;
				case '2':
					$invite_record_list[$m]['status_str'] = '已使用';
					$invite_record_list[$m]['status_color'] = '#B5760E';
					break;
			}
		}
		// 生成分页数据
		$this->assign('PAGE', $PAGE);

		$this->assign('invite_record_list', $invite_record_list);
		$this->display();
	}


	/* 新增邀请
	 *
	 */
	public function add_invite()
	{
		echo '<title>生成邀请链接 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
		// 获取昵称
		$nickname = strval( trim($_POST['nickname']) );
		if(!$nickname)
		{
			$this->show_msg('error', '昵称为空', 0);
            die();
		}
		// 昵称查重
		$url = HOST_NAME . MODULE_NAME . '/nickname_duplicate_check';
		$post_data = array('nickname' => $nickname);
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
		$nickname_duplicate_check = curl_exec($ch);
		curl_close($ch);
		if(!$nickname_duplicate_check)
        {
            $this->show_msg('error', '昵称重复', 0);
            die();
        }
		// 获取当前时间
		$current_time = time();
		// 生成邀请码
		$invite_code = md5( md5($nickname) . $current_time );
		// 写入邀请记录
		$data_add_invite['invite_code'] = $invite_code;
		$data_add_invite['nickname'] = $nickname;
		$data_add_invite['add_time'] = $current_time;
		$data_add_invite['status'] = '1';
		$add_invite = M('invite_record', '', $db_conf)->add($data_add_invite);
		if(!$add_invite)
		{
			$this->show_msg('error', '生成链接失败', 0);
            die();
		}

		U('Users/invite_record_list', '', '', 1);
	}


	/* 取消邀请
	 *
	 */
	public function cancel_invite()
	{
		echo '<title>取消邀请 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
		// 获取邀请记录ID
		$record_id = intval($_GET['record_id']);
		if(!$record_id)
		{
			$this->show_msg('error', '邀请记录ID为空', 0);
            die();
		}
		// 获取邀请记录
		$where_invite_record['id'] = array('eq', $record_id);
		$invite_record = M('invite_record', '', $db_conf)->where($where_invite_record)->find();
		if($invite_record === FALSE)
		{
			$this->show_msg('error', '获取邀请记录失败', 0);
            die();
		}
		if(!$invite_record)
		{
			$this->show_msg('error', '找不到待取消的邀请', 0);
            die();
		}
		// 检查邀请记录使用状态
		switch($invite_record['status'])
		{
			case 0:
				$record_status_err_msg = '邀请已被使用，无法取消';
				break;
			case 2:
				$record_status_err_msg = '邀请已取消，请勿重复操作';
				break;
		}
		if($record_status_err_msg)
		{
			$this->show_msg('error', $record_status_err_msg, 0);
            die();
		}
		// 取消邀请
		$data_cancel_record['status'] = '0';
		$where_cancel_record['id'] = array('eq', $record_id);
		$cancel_record = M('invite_record', '', $db_conf)->where($where_cancel_record)->save($data_cancel_record);
		if(!$cancel_record)
		{
			$this->show_msg('error', '取消邀请失败', 0);
            die();
		}
		// 获取邀请记录状态
		$record_status = strval( trim($_GET['record_status']) );
		switch($record_status)
		{
			case 'all':
				$record_status = '';
				break;
			case 'usable':
			case 'used':
			case 'unusable':
				$record_status = '?record_status=' . $record_status;
				break;
			default:
				$record_status = '';
		}

		U('Users/invite_record_list' . $record_status, '', '', 1);
	}


	/* 禁用用户
	 *
	 */
	public function ban_user()
	{
		echo '<title>禁用用户 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
		// 获取用户ID
		$user_id = intval($_GET['user_id']);
		if(!$user_id)
		{
			$this->show_msg('error', '用户ID为空', 0);
            die();
		}
		// 获取用户信息
		$where_user_info['id'] = array('eq', $user_id);
		$user_info = M('users', '', $db_conf)->where($where_user_info)->find();
		if($user_info === FALSE)
		{
			$this->show_msg('error', '获取用户信息失败', 0);
			die();
		}
		if(!$user_info)
		{
			$this->show_msg('error', '用户不存在', 0);
			die();
		}
		// 检查用户是否已被禁用
		if(!$user_info['useable'])
		{
			$this->show_msg('error', '用户已被禁用，请勿重复操作', 0);
			die();
		}
		// 执行禁用操作
		$data_ban_user['useable'] = '0';
		$where_ban_user['id'] = array('eq', $user_id);
		$ban_user = M('users', '', $db_conf)->where($where_ban_user)->save($data_ban_user);
		if(!$ban_user)
		{
			$this->show_msg('error', '禁用用户失败', 0);
			die();
		}
		// 获取用户状态
		$user_status = strval( trim($_GET['user_status']) );
		switch($user_status)
		{
			case 'all':
				$user_status = '';
				break;
			case 'usable':
			case 'unusable':
				$user_status = '?user_status=' . $user_status;
				break;
			default:
				$user_status = '';
		}

		U('Users/user_list' . $user_status, '', '', 1);
	}


	/* 启用用户
	 *
	 */
	public function unban_user()
	{
		echo '<title>启用用户 - Remote MySQL</title>';
        echo '<link rel="stylesheet" type="text/css" href="' . __APP_PUBLIC__ . '/css/public.css" />';

        // 数据库链接
        $db_conf = $this->get_db_config();

        // 检查登录
        $check_login = $this->check_login();
        if(!$check_login)
        {
            U('Users/login', '', '', 1);
        }
        // 检查权限
        $power = $this->get_user_power();
        if($power != 1)
        {
            $this->show_msg('error', '该功能仅管理员可用', 0);
            die();
        }
		// 获取用户ID
		$user_id = intval($_GET['user_id']);
		if(!$user_id)
		{
			$this->show_msg('error', '用户ID为空', 0);
            die();
		}
		// 获取用户信息
		$where_user_info['id'] = array('eq', $user_id);
		$user_info = M('users', '', $db_conf)->where($where_user_info)->find();
		if($user_info === FALSE)
		{
			$this->show_msg('error', '获取用户信息失败', 0);
			die();
		}
		if(!$user_info)
		{
			$this->show_msg('error', '用户不存在', 0);
			die();
		}
		// 检查用户是否已启用
		if($user_info['useable'])
		{
			$this->show_msg('error', '用户已启用，请勿重复操作', 0);
			die();
		}
		// 执行启用操作
		$data_unban_user['useable'] = '1';
		$where_unban_user['id'] = array('eq', $user_id);
		$unban_user = M('users', '', $db_conf)->where($where_unban_user)->save($data_unban_user);
		if(!$unban_user)
		{
			$this->show_msg('error', '启用用户失败', 0);
			die();
		}
		// 获取用户状态
		$user_status = strval( trim($_GET['user_status']) );
		switch($user_status)
		{
			case 'all':
				$user_status = '';
				break;
			case 'usable':
			case 'unusable':
				$user_status = '?user_status=' . $user_status;
				break;
			default:
				$user_status = '';
		}

		U('Users/user_list' . $user_status, '', '', 1);
	}


}
